Method and apparatus for representing and navigating search results

ABSTRACT

A method and apparatus for representing and navigating search results from a database on a computer system. A graphical user interface is generated to receive user input including a data source to search for information and a query indicating information which is desired from the data source. The user input is transmitted to the data source, the search is performed and information responsive to the query resulting from the search is received from the data source. The search results include characteristics of the responsive information. The responsive information is clustered into a plurality groups based on selected characteristic information and the user may select at least one group of the responsive information to be displayed.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present reissue application is a continuation of reissue applicationU.S. application Ser. No. 11/256,615 filed Oct. 21, 2005 now U.S. Pat.No. Re. 42,262, which is a reissue application of U.S. application Ser.No. 09/385,149 filed Aug. 30, 1999, now U.S. Pat. No. 6,636,853. Morethan one reissue application has been filed.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates generally to graphical user interfaces (GUIs).More specifically, this invention relates to an apparatus and method forgraphically displaying results of a search conducted on an informationnetwork such as the Internet, local and remote databases of contentproviders, etc.

2. Description of the Related Art

A significant development in computer networking is the Internet, whichis a sophisticated worldwide network of computer systems. A user thatwishes to access the Internet typically does so using a software programknown as a web browser that is hosted on a personal computer or otherdata processing device that is capable of executing the web browserprogram and being connected to the Internet. A web browser uses astandardized interface protocol, such as HyperText Transfer Protocol(HTTP), to make a connection via the Internet to other computers knownas web servers, to receive user commands to operate certain browserfunctions and/or to request information from the Internet, and toreceive information from the web servers that is presented to the user,typically on a display device such as a monitor.

An ever-increasing amount of information is available on the Internetand other information databases (collectively referred to as informationnetworks). A query to an information network requires a textualspecification based on keywords and logical operators between keywords.In most instances, the query returns only the results, which may not bevery useful when the number of results returned is much larger than thatwhich can be viewed and manipulated on a screen.

When performing a search, it is typical that a search strategy will beused in order to find the desired information. Most search strategiesare premised on attaining a reasonable number of items that satisfy asearch criteria. Typically, a query is comprised of keywords (i.e.,search terms) connected together via logical and/or proximity operators.Logical operators are used to include or exclude items in a set whereasproximity operators are used to identify items having keywords that area predetermined distance apart, such as within 10 words, in the samesentence, or that are adjacent. Once a query is made and executed, alist of items satisfying the criteria of the query is presented to theuser. The user can then either view one or more items in the list, or ifthe list is large, modify the search to reduce the number of items inthe list.

Data navigation is the process of viewing different dimensions, slices,and levels of detail of a multidimensional database. In a typical listof search results from an information network, documents or other itemsare listed in descending order based on a relevancy value. The relevancyvalue for each document is based the number of times the keywords arefound in the document. A user must still sort through the listsequentially to view other characteristics of the documents, such assize and date, which may also help determine a document's relevancy.Thus it is desirable to provide a data navigation tool which allows theuser to view, sort, and navigate search results according to severaldifferent data and relevant characteristics.

One technique for sorting lists is known as data clustering, which isthe process of dividing a data set into mutually exclusive groups suchthat the members of each group are as “close” as possible to oneanother, and different groups are as “far” as possible from one another,where distance is measured with respect to all available variables.There are several models for data clustering, e.g., K-means clustering,self-organizing feature maps, the neural gas algorithm, and complexityoptimized vector quantization.

In the K-means procedure, for example, suppose a set of feature vectorsx₁, x₂, . . . , x_(n) are from the same class or subset, and that theyfall into k compact clusters, k<n. Let m; be the mean of the vectors incluster i. If the clusters are well separated, a minimum-distanceclassifier can be used to separate them. That is, s is in cluster i if∥x-m_(i)∥ is the minimum of all the k distances. Thus, the k-meansprocedure partitions the n examples into k clusters so as to minimizethe sum of the squared distances to the cluster centers. The resultsdepend on the value of k, which can be any value from 2 to n. When k=n,the procedure is known as the nearest neighbor classifier.

SUMMARY OF THE INVENTION

A method and apparatus for representing and navigating search resultsfrom a database on a computer system. A graphical user interface isgenerated to receive user input including a data source to search forinformation, and a query indicating information which is desired fromthe data source. The user input is transmitted to the data source, thesearch is performed and information responsive to the query resultingfrom the search is received from the data source. The search resultsinclude characteristics of the responsive information. The responsiveinformation is clustered into a plurality of groups based on selectedcharacteristic information and means are provided to allow the user toselect at least one group of the responsive information to be displayed.

The responsive information includes a list of documents containinginformation related to the query. The graphical user interface includesa first display portion showing the plurality of groups ofcharacteristic information available for the user to select, and asecond display portion showing the list of documents in the responsiveinformation.

In one embodiment, when the user selects one or more groups, thedocuments displayed in the second display portion belong to the group(s)selected by the user. When a group is selected, it is separated into aplurality of subgroups based on the range of the characteristicinformation for the selected group. The first display portion is updatedto show the plurality of subgroups.

In another embodiment, each group is separated into a plurality ofsubgroups based on the range of the characteristic information for eachgroup. The first display portion shows the plurality of subgroups, whichmay be color coded to differentiate the subgroups. Similarly, the listof documents in the second display portion may be correspondingly colorcoded to the color code in the first display portion.

In another embodiment, a server may be used to transmit data between theclient computer system and the data source. In this configuration theserver includes program instructions for separating the documents intothe plurality of groups based on selected characteristic information.

In another embodiment of the present invention, additional informationmay be displayed based on the group of responsive information selectedby the user.

In another embodiment of the present invention, the first displayportion includes a stratum showing the subgroups of the documents. Whenthe user selects one or more subgroups, another stratum showing thesubgroup of the responsive information is displayed. The responsiveinformation in the second display portion is based on the subgroupselected by the user.

Another feature of the present invention allows the user to select adocument to be displayed for the user to examine its contents.

Another feature of the present invention allows the user to re-arrangethe order in which the list of documents in the second display portionare displayed.

The foregoing has outlined rather broadly the objects, features, andtechnical advantages of the present invention so that the detaileddescription of the invention that follows may be better understood.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a system for accessing an informationnetwork found in the prior art.

FIG. 1a is a diagram of components found in a typical computer system.

FIG. 2 is an example of prior art search results output by an Internetsearch engine and displayed by a browser program.

FIG. 3 is a block diagram of one embodiment of an architecture forprogram instructions for viewing and navigating search results inaccordance with the present invention.

FIG. 4 is a flowchart for program instructions for viewing andnavigating search results in accordance with the present invention.

FIGS. 5a-5f are examples of a graphical user interface for viewing andnavigating search results in accordance with the present invention.

The present invention may be better understood, and its numerousobjects, features, and advantages made apparent to those skilled in theart by referencing the accompanying drawings. The use of the samereference symbols in different drawings indicates similar or identicalitems.

DETAILED DESCRIPTION

The method and apparatus of the present invention is applicable todevices that access a computerized information network. A number ofdifferent information networks are available that allow access toinformation contained on their computers, with the Internet being onethat is generally known to the public. While the Internet is used hereinas an example of how the present invention is utilized, it is importantto recognize that the present invention is also applicable to otherinformation networks and information systems including Intranets,database management systems, and document retrieval systems. For thosewho are not familiar with the Internet, the world-wide web, web servers,and web browsers, a brief overview of these concepts is presented here.

An example of a typical Internet connection found in the prior art isshown in FIG. 1. A user that wishes to access information on theInternet typically has a computer workstation 112 that executes anapplication program known as a web browser 114. Workstation 112establishes a communication link 116 with web server 118 such as adial-up wired connection with a modem, a direct link such as a T1 orISDN line, a wireless connection through a cellular or satellitenetwork, or a local data transport system such as Ethernet or token ringover a local area network. When the user enters a request forinformation by entering commands in web browser 114, workstation 112sends a request for information, such as a search for documentspertaining to a specified topic, or a specific web page to web server118. Each web server 118, 120, 122, 124 on the Internet has a knownaddress which the user must supply to the web browser 114 in order toconnect to the appropriate web server 118, 120, 122, or 124. If theinformation is available on the user's web server 118, a central linksuch as backbone 126 allows web servers 118, 120, 122, 124 tocommunicate with one another to supply the requested information.Because web servers 118, 120, 122, 124 can contain more than one webpage, the user will also specify in the address which particular webpage he wants to view. The address, also known as a universal resourcelocator (URL), of a home page on a server is a series of numbers thatindicate the server and the location of the page on the server,analogous to a post office address. For simplicity, a domain name systemwas developed that allows users to specify servers and documents usingnames instead of numbers. The format of domain names on the world wideweb is www.xxx.yyy, where www stands for world wide web, xxx is the nameof the provider of the content on the page(s), and yyy is the domain ofthe server. There are several different domains in the world wide webthat pertain to different types of organizations such as educationalinstitutions (.edu), government (.gov), commercial businesses (.com),and non-profit organizations (.org). A URL may further specify aparticular page in a group of pages belonging to a content provider byincluding additional information at the end of a domain name.

The web servers 118, 120, 122, 124 execute a web server applicationprogram which monitors requests, services requests for the informationon that particular web server, and transmits the information to theuser's workstation 112. A web page is primarily visual data that isintended to be displayed on the display monitor of the user'sworkstation 112. When web server 118 receives a web page request, itwill transmit a document, generally written in a markup language such ashypertext markup language (HTML), across communication link 116 to therequesting web browser 114. When web server 118 receives a searchrequest, the request is sent to the server containing the search enginespecified by the user. The search engine then compiles one or more pagescontaining a list of links to web pages on other web browsers 120, 122,124 that may contain information relevant to the user's request. Thesearch engine transmits the page(s) in markup language back to therequesting web server. Web browser 114 interprets the markup languageand outputs the web page to the monitor of user workstation 112. Thisweb page displayed on the user's display may contain text, graphics, andlinks (which are addresses of other web pages.) These other web pages(i.e., those represented by links) may be on the same or on differentweb servers 116. The user can go to these other web pages by clicking onthe links using a mouse or other pointing device. This entire system ofweb pages with links to other web pages on other servers across theworld comprises the world wide web.

Workstation 112 and/or web servers 116 are computer systems, such ascomputer system 130 as shown in FIG. 1a. Computer system 130 includescentral processing unit (CPU) 132 connected by host bus 134 to variouscomponents including main memory 136, storage device controller 138,network interface 140, audio and video controllers 142, and input/outputdevices 144 connected via input/output (I/O) controllers 146. Thoseskilled in the art will appreciate that this system encompasses alltypes of computer systems including, for example, mainframes,minicomputers, workstations, servers, personal computers, Internetterminals, network appliances, notebooks, palm tops, personal digitalassistants, and embedded systems. Typically computer system 130 alsoincludes cache memory 150 to facilitate quicker access between processor132 and main memory 136. I/O peripheral devices often include speakersystems 152, graphics devices 154, and other I/O devices 144 such asdisplay monitors, keyboards, mouse-type input devices, floppy and harddisk drives, DVD drives, CD-ROM drives, and printers. Many computersystems also include network capability, terminal devices, modems,televisions, sound devices, voice recognition devices, electronic pendevices, and mass storage devices such as tape drives. The number ofdevices available to add to personal computer systems continues to grow,however computer system 130 may include fewer components than shown inFIG. 1a and described herein.

The peripheral devices usually communicate with processor 132 over oneor more buses 134, 156, 158, with the buses communicating with eachother through the use of one or more bridges 160, 162. Computer system130 may be one of many workstations or servers connected to a networksuch as a local area network (LAN), a wide area network (WAN), or aglobal information network such as the Internet through networkinterface 140.

CPU 132 can be constructed from one or more microprocessors and/orintegrated circuits. Main memory 136 stores programs and data that CPU132 may access. When computer system 130 starts up, an operating systemprogram is loaded into main memory 136. The operating system manages theresources of computer system 130, such as CPU 132, audio controller 142,storage device controller 138, network interface 140, I/O controllers146, and host bus 134. The operating system reads one or moreconfiguration files to determine the hardware and software resourcesconnected to computer system 130.

During operation, main memory 136 includes the operating system,configuration file, and one or more application programs with relatedprogram data. Application programs can run with program data as input,and output their results as program data in main memory 136 or to one ormore mass storage devices through a memory controller (not shown) andstorage device controller 138. CPU 132 executes many applicationprograms, including one or more programs to establish a connection to acomputer network through network interface 140. The application programsmay be embodied in one executable module or may be a collection ofroutines that are executed as required.

Storage device controller 138 allows computer system 130 to retrieve andstore data from mass storage devices such as magnetic disks (hard disks,diskettes), and optical disks (DVD and CD-ROM). The mass storage devicesare commonly known as Direct Access Storage Devices (DASD), and act as apermanent store of information. The information from the DASD can be inmany forms including application programs and program data. Dataretrieved through storage device controller 138 is usually placed inmain memory 136 where CPU 132 can process it.

One skilled in the art will recognize that the foregoing components anddevices are used as examples for sake of conceptual clarity and thatvarious configuration modifications are common. For example, audiocontroller 142 is connected to PCI bus 156 in FIG. 1a, but may beconnected to the ISA bus 138 or reside on the motherboard (not shown) inalternative embodiments. As further example, although computer system130 is shown to contain only a single main CPU 132 and a single systembus 134, those skilled in the art will appreciate that the presentinvention may be practiced using a computer system that has multipleCPUs 132 and/or multiple busses 134. In addition, the interfaces thatare used in the preferred embodiment may include separate, fullyprogrammed microprocessors that are used to off-load computationallyintensive processing from CPU 132, or may include input/output (I/O)adapters to perform similar functions. Further, PCI bus 156 is used asan exemplar of any input-output devices attached to any I/O bus; AGP bus159 is used as an exemplar of any graphics bus; graphics device 154 isused as an exemplar of any graphics controller; and host-to-PCI bridge160 and PCI-to-ISA bridge 162 are used as exemplars of any type ofbridge. Consequently, as used herein the specific exemplars set forth inFIG. 1 are intended to be representative of their more general classes.In general, use of any specific exemplar herein is also intended to berepresentative of its class and the non-inclusion of such specificdevices in the foregoing list should not be taken as indicating thatlimitation is desired.

FIG. 2 shows an example of Internet search results 200 as presented inthe prior art. The search query “java viavoice” was used for purposes ofillustration only and is not meant to limit use of the present inventionin any way. The documents are listed in descending order based on theirrank as determined by the search engine according to various criteria,such as the number of time the keywords or phrases appeared in the datarecord. The criteria for ranking the data records with respect to oneanother is typically unknown to the user. The results 200 provide abrief summary of each data record's contents, such as summary 202, and ahypertext link, such as link 204, which the user may select to retrievedata record 206. Depending on the search query, the resulting list maycontain a very large number of data records, making it prohibitive forthe user to review the entire list of the responsive information todetermine which may be the most relevant for their purpose. The searchresults 200 often do not provide any characteristic information whichcould be useful in determining the relevancy of the documents to theuser. Even when characteristic information, such as date or size of thedocuments, is available, the browser and other user interfaces to searchresults do not provide means for the user to navigate through thedocuments based on characteristic information.

The present invention is designed to provide the user with moreinformation regarding the results of a search and to allow the user tonavigate through the information to facilitate finding the most relevantdocuments. In one embodiment shown in FIG. 3, the present inventionincludes client program instructions 302 that are executed onworkstation 112 and server program instructions 304 that are executed onservers 118. Client program instructions 302 may be implemented as astandalone executable program, or they may be included as an extensionto web browser 114, such as a Java applet that is executed through anapplication programmer's interface (API) in web browser 114. Users 306,308, 310 interact with different copies of client program instructions302 via I/O devices 144 connected to workstations 112. Server programinstructions 304 can access one or more data sources 312 through 322 forinformation that is responsive to the user's query. Server programinstructions 304 on servers 118 can service multiple clientsconcurrently. Data sources 312 through 322 include program instructionsthat interface with one or more search engines that retrieve informationresponsive to the user's query from computer systems associated withdata sources 312 through 322. Alternatively, client program instructions302 may communicate directly with one or more data sources 312 through322. In this situation, either client program instructions 302, orprogram instructions for transmitting the information from data sources312 through 322, are capable of parsing the responsive and formatting itfor use by client program instructions 302.

FIG. 4 shows a flowchart of one embodiment the present inventionincluding the functionality of client program instructions 302 andserver program instructions 304, and their interaction with one anotherand the user. In blocks 402 and 404, the user first selects a server anda data source by selecting or providing a name of a data source to beused, and then inputs keywords and/or phrases pertaining to theinformation sought. In process 406, client program instructions 302 sendthe name of the data source and the keywords and phrases to server 118.As shown in process 408, 410, 412, and 414, server 118 queries one ormore data sources 312 through 322, receives the results from the datasource, formats the results, and returns the results to client programinstructions 302.

The remaining portion of flowchart 400 pertains to another feature ofthe present invention namely, a graphical user interface (GUI) forselecting options and viewing the documents in different groups, orclasses, according to selected display criteria. FIG. 5a shows anexample of GUI 500 for viewing and navigating search results on adisplay monitor communicating with workstation 112 according to oneembodiment of the present invention. To conduct a search, a user enterskeywords and key phrases through an input device such as a keyboard orvoice recognition system (as previously discussed in blocks 402 and 404in flowchart 400). The input is received by an application program inworkstation 112 which displays a copy of the input in query window 502.A variety of terms and logical and/or proximity operators may also beincluded, when supported by a particular search engine, to allow theuser to include or exclude items in a set and to identify items havingkeywords that are a predetermined distance apart, such as within 10words, in the same sentence, or that are adjacent. Additionally, queriesmay be entered in natural language which is parsed by logic in thesearch engine to determine key words and phrases for conducting asearch.

A user then selects a source of information in data source window 504 byeither typing in the name of the source directly or selecting an entryin a pull-down menu that is accessed by selecting arrow 506. To send thecontents of query window 502 and data source window 504 to server 118,the user selects search button 508. Once server program instructions 304compile and format the results of the search, they are sent to clientprogram instructions 302. The results of the search include categoriesof information such as, for example, the size of each document, the rankof the documents as determined by the search engine, the date that eachdocument was posted on the information network, the language eachdocument is written in, the URL of each document, and the cluster inwhich each document is grouped as determined by the clustering algorithmutilized with the present invention, such as a K-means clusteringalgorithm. The type of information available is based on the categoriesof information available from data sources 312 through 322. For example,a data source for a sales catalog may include a number of differentcategories of information including, but not limited to, products,price, discount, product availability, sizes, colors, and other physicalproperties. Another example is a stock market data source that mayinclude information including, but not limited to, number of sharesoutstanding, price per share, earnings per share, trading volume, andinsider trading. The present invention is designed to be used withvirtually any categories of information that are available from a datasource. The information that is returned in response to a user's queryis typically a list of data records for items such as, for example,documents, stocks, or products. For convenience of notation, the word“documents” is used herein to refer to the data records that arereturned in response to the user's query.

Referring to process 416 in FIG. 4, client program instructions 302analyze each category of information included in the search results andgenerate a first stratum of clusters for each category. Specifically,client program instructions 302 uses a clustering algorithm to creategroups or clusters of documents having similar attributes for aparticular category or number of categories of information. Clusteringalgorithms use various heuristics and parameters to determine thegroups, depending on the algorithm. For example, the K-means algorithmuses parameters such as a search threshold, a maximum number of searchrounds, and a maximum number of search iterations per round. Someexamples of other parameters which are independent of the algorithm thatmay be taken into account to determine the groups include the maximumnumber of records in the table, the maximum number of blocks per column,and font sizes and color schemes. The clustering algorithm may beperformed by either client program instructions 302 or server programinstructions 304. For example, assume 200 or more documents were foundduring a search. The clustering algorithm determines each group based onone or more categories of information, such as a combination of “sizeand date”, and “same author and price”. The clustering algorithm alsoseparates each group of documents into a set of sub-groups of documentshaving similar attributes.

Subsequently, in process 418, the client program instructions 302generate and display a graphical user interface to allow the user toview and navigate the various categories of information available. Forexample, GUI 500 in FIG. 5a shows first stratum 509 having columnsrepresenting the categories of rank 510, domain 512, date 514, size 516,language 518, and group 520. When a user selects a button heading acolumn, such as rank button 522, domain button 524, date button 526,size button 528, language button 530, or group button 532, the column issorted by values. By toggling the button, the user switches the displayof the list of documents in table 534 from descending to ascendingorder, or vice versa, for the selected category. An example of togglingthe order documents are listed by date is shown in a comparison betweenFIGS. 5b and 5c, where the documents listed in FIG. 5b are shown inascending order by date, and the documents listed in FIG. 5c are shownin descending order by date. An indicator, such as rim 535 shown inFIGS. 5b and 5c, is displayed in a contrasting color to indicate whenone of buttons 522 through 532 is toggled.

In another feature of the present invention, when the user moves apointer, such as a mouse cursor or a light pen, over a block, a readout,for example the range of dates in window 536 as shown in FIG. 5d appearsindicating the range of values represented by the block.

The sub-groups in each of columns 510 through 520 are indicated by aseries of adjacent blocks, such as blocks 540 through 546 for rankcolumn 510. When columns 510 through 520 are initially generated, onlyfirst stratum 509 is displayed. One embodiment of the present inventionincludes another feature in client program instructions 302 thatgenerates a successive stratum when the user selects a block in apreceding stratum. For example, FIG. 5d shows second stratum 548 that isgenerated as a result of a user selecting block 550 in first stratum509. Stratum 548 represents the distribution of values for the clusterof documents in selected block 550. Further, table 534 is updated toshow only those documents that are included in block 550.

A user may also select more than one block in a stratum, as shown, forexample, by blocks 554 and 556 in FIG. 5f. When blocks 554 and 556 areselected, third stratum 552, is generated, and table 534 is updated toinclude all the documents that belong in the clusters represented byblocks 554 and 556.

Another feature of table 534 is color-coded portions 558 through 566that indicate which sub-group the list of documents displayed in table534 correspond to for the selected category. Table 534 includescolor-coded portions 558 through 566 that correspond to the color-codingof the blocks in columns 510 through 520. This allows the user toreadily see which sub-group of the selected category the documents beingshown in table 534 belong to.

The width of the blocks in each stratum represents the relative numberof records in the cluster represented by a block. Thus, the wider ablock is, the more records it includes. Additionally the height of ablock indicates the relative number of records contained in that block'sstratum. These height and width indicators provide another visual cue ofthe distribution of the documents according to the various categoriesfor which information is available, and allows the user to visuallydetermine which cluster is likely to contain relevant information. Forexample, a user may find that only documents from a selected time framewould be relevant. In this situation, the user could select the blockcontaining documents that are near the desired date, with the resultthat only those documents would be shown in table 534. This featureallows the user to navigate through a reduced number of documents tofind those that are most relevant, thereby saving time. Notably, theuser may select one or more blocks from one or more different columns togenerate a list of documents in table 534 that meet criteria in two ormore categories, for example, size and date.

To further facilitate navigation, the URL for a document listed in table534 may be accessed in another browser frame when the listing isselected with a selection device, such as clicking a mouse cursor orlight pen over the document listing.

Another feature that may be implemented in an embodiment of the presentinvention is group column 520. The clustering algorithm automaticallygroups similar records of the documents found in the search together.Group column 520 allows the user to select a cluster and examine theblocks in the new stratum. The widths of the blocks in the new stratumwill allow the user to evaluate the breakdown of the groups and whyrecords are assigned to a given group.

Referring back to flow diagram 400 in FIG. 4, processes 420 through 434outline the functionality of GUI 500 as the user interacts with thepresent invention. In processes 422 through 426, when one or moreblocks, such as block 550 in FIG. 5e, is selected, a new stratum that isdisplayed below the selected block's stratum is generated. Table 534 isthen updated to display the list of documents selected according to thecriteria corresponding to the blocks selected. Table 534 is also updatedwhen a block corresponding to another group is selected. When all theblocks are deselected from a stratum, the stratum below it is removedfrom the display.

Processes 428 through 430 show that the URL for a document is accessedand the corresponding web page is displayed in another browser framewhen a document is selected from the list of documents in table 534.

When a column button, such as one of column buttons 522 through 532, isselected, processes 432 and 434 show that the list of documents in table534 is resorted in ascending or descending order with respect to thecriteria corresponding to the column selected.

While the invention has been described with respect to the embodimentsand variations set forth above, these embodiments and variations areillustrative and the invention is not to be considered limited in scopeto these embodiments and variations. For example, the present inventionmay be used to deliver personalized advertising to the client.Preferences for advertising content may be specified by the user, or theclient program instructions 302 or server program instructions 304 couldchoose advertisements based on the topic(s) being searched by the user.Accordingly, various other embodiments and modifications andimprovements not described herein may be within the spirit and scope ofthe present invention, as defined by the following claims.

What is claimed is:
 1. A computer program product for representing andnavigating search results on a client computer system, wherein thesearch results are transmitted to the client computer system from a datasource, the computer program product comprising: a set of client programinstructions including: first program instructions being operable toreceive user input, the user input including a data source to search forinformation and a query indicating information which is desired from thedata source; second program instructions being operable to transmit theuser input to the data source and to receive information responsive tothe query from the data source, wherein the responsive informationincludes multidimensional characteristic information about theresponsive information; third program instructions being operable toseparate the responsive information into a plurality of groups based onone or more categories of said multidimensional characteristicinformation; third program instructions, being further operable toseparate the responsive information into a plurality of subgroups basedon selected multidimensional characteristic information; and fourthprogram instructions being operable to allow the user to select at leastone group of the responsive information.
 2. The computer programproduct, as set forth in claim 1, further comprising: fifth programinstructions for generating a graphical user interface, the graphicaluser interface including a first display portion showing the pluralityof groups of multidimensional characteristic information available forthe user to select.
 3. The computer program product, as set forth inclaim 2, wherein the responsive information includes a list of documentscontaining information related to the query, and wherein the graphicaluser interface further includes a second display portion showing thelist of documents in the responsive information.
 4. The computer programproduct, as set forth in claim 3, wherein the documents displayed belongto the at least one group selected by the user.
 5. The computer programproduct, as set forth in claim 3, wherein the fifth program instructionsare faker operable to receive user input indicating a document in thelist of documents, the fifth program instructions being further operableto initiate a display of the indicated document.
 6. The computer programproduct, as set forth in claim 3, wherein the fifth program instructionsare fixer operable to receive user input indicating a group of thedocuments, the fifth program instructions being further operable tore-arrange the order in which the list of documents in the seconddisplay portion are displayed based on the group selected by the user.7. The computer program product, as set forth in claim 2, wherein thefirst display portion further shows a graphical representation of theplurality of subgroups.
 8. The computer program product, as set forth inclaim 2, wherein the first display portion further shows the pluralityof subgroups, the first display portion including color coded portionsfor differentiating the subgroups.
 9. The computer program product, asset forth in claim 8, wherein the graphical user interface furtherincludes a second display portion showing a list of documents in theresponsive information, the second display portion including color codedportions associated with the list of documents corresponding to thecolor coded portions in the first display portion.
 10. The computerprogram product, as set forth in claim 2, further comprising programinstructions for displaying additional information based on the at leastone group of the responsive information selected by the user.
 11. Thecomputer program product, as set forth in claim 1, wherein the thirdprogram instructions separate the responsive information into aplurality of subgroups based on one or more ranges of the selectedmultidimensional characteristic information.
 12. The computer programproduct, as set forth in claim 11, wherein the first display portionincludes a stratum showing the subgroups of the responsive information,the fifth program instructions being further operable to; receive userinput comprising selection of at least one subgroup; and displayadditional information based on at least one subgroup selected by theuser, wherein the additional information displayed includes anotherstratum showing a further subgroup of the responsive information. 13.The computer program product, as set forth in claim 12, wherein thegraphical user interface further includes a second display portionshowing at least a portion of the responsive information, the fifthprogram instructions being further operable to update the responsiveinformation in the second display portion based on the at least onesubgroup selected by the user.
 14. The computer program product, as setforth in claim 1, further comprising: server program instructionsoperable to transmit data between the client computer system and thedata source.
 15. The computer program product, as set forth in claim 14,wherein the data includes the user input.
 16. The computer programproduct, as set forth in claim 14, wherein the data includes theresponsive information.
 17. The computer program product, as set forthin claim 14, wherein the server program instructions include the thirdprogram instructions.
 18. A method for representing and navigatingsearch results on a client computer system, the method comprising:receiving user input in the client computer system, the user inputincluding a data source to search for information and a query indicatinginformation which is desired form the data source; transmit the userinput from the client computer system to the data source; searching thedata source for information responsive to the query, receivinginformation responsive to the query from the data source, wherein theresponsive information includes multidimensional characteristicinformation about the documents; separating the responsive informationinto a plurality of groups based on one or more categories of saidmultidimensional characteristic information, further separating theresponsive information into a plurality of subgroups based on selectedmultidimensional characteristic information; and providing means toallow the user to select at least one group of the responsiveinformation.
 19. The method, as set forth in claim 18, furthercomprising: generating a graphical user interface including generating afirst display portion showing the plurality of groups ofmultidimensional characteristic information available for the user toselect.
 20. The method, as set forth in claim 19, wherein the responsiveinformation includes a list of documents containing information relatedto the query, and wherein the graphical user interface further includesa second display portion showing the list of documents in the responsiveinformation.
 21. The method, as set forth in claim 20, wherein thedocuments displayed belong to the at least one group selected by theuser.
 22. The method, as set forth in claim 20, further comprisingreceiving user input indicating a document in the list of documents, anddisplaying the indicated document.
 23. The method, as set forth in claim20, further comprising receiving user input indicating a group of thedocuments, and re-arranging the order in which the list of documents inthe second display portion are displayed based on the group selected bythe user.
 24. The method, as set forth in claim 19, wherein the firstdisplay portion further shows a graphical representation of theplurality of subgroups.
 25. The method, as set forth in claim 19,further comprising displaying the plurality of subgroups in the firstdisplay portion, and color coding the display of the plurality of thesubgroups in the first display portion for differentiating thesubgroups.
 26. The method, as set forth in claim 25, wherein generatingthe graphical user interface further includes generating a seconddisplay portion showing a list of documents in the responsiveinformation, the second display portion including color coded portionsassociated with the list of documents corresponding to the color codedportions in the first display portion.
 27. The method, as set forth inclaim 19, further comprising displaying additional information based onthe at least one group of the responsive information selected by theuser.
 28. The method, as set forth in claim 18, wherein said responsiveinformation is separated into said plurality of subgroups based on oneor more ranges of the selected multidimensional characteristicinformation.
 29. The method, as set forth in claim 28, wherein the firstdisplay portion includes a stratum showing the subgroups of theresponsive information, the method further comprising: receiving userinput comprising selection of at least one subgroup; and displayingadditional information based on at least one subgroup selected by theuser, wherein the additional information displayed includes anotherstratum showing a further subgroup of the responsive information. 30.The method, as set forth in claim 29, wherein the graphical userinterface further includes a second display portion showing at least aportion of the responsive information, the method further includingupdating the responsive information in the second display portion basedon the at least one subgroup selected by the user.
 31. A system forrepresenting and navigating search results, the system comprising: atleast one data source; a client computer system; a set of client programinstructions executable on the client computer system, the clientprogram instructions including: first program instructions beingoperable to receive user input, the user input including a queryindicating information which is desired from the at least one datasource, second program instructions being operable to transmit the userinput to the at least one data source and to receive informationresponsive to the query from the at least one data source, wherein theresponsive information includes multidimensional characteristicinformation about the responsive information; third program instructionsbeing operable to separate the responsive information into a pluralityof groups based on one or more categories of said multidimensionalcharacteristic information; third program instructions being furtheroperable to separate the responsive information into a plurality ofsubgroups based on selected multidimensional characteristic information;and fourth program instructions being operable to allow the user toselect at least one group of the responsive information.
 32. The system,as set forth in claim 31, further comprising: fifth program instructionsfor generating a graphical user interface, the graphical user interfaceincluding a first display portion showing the plurality of groups ofmultidimensional characteristic information available for the user toselect.
 33. The system, as set forth in claim 32, wherein the responsiveinformation includes a list of documents containing information relatedto the query, and wherein The graphical user interface further includesa second display portion showing the list of documents in the responsiveinformation.
 34. The system, as set forth in claim 33, wherein thedocuments displayed belong to the at least one group selected by theuser.
 35. The system, as set forth in claim 33, wherein the fifthprogram instructions are further operable to receive user inputindicating a document in the list of documents, the fifth programinstructions being further operable to initiate a display of theindicated document.
 36. The system, as set forth in claim 33, whereinThe fifth program instructions are further operable to receive userinput indicating a group of the documents, the fifth programinstructions being further operable to rearrange the order in which thelist of documents in the second display portion are displayed based onthe group selected by the user.
 37. The system, as set forth in claim32, wherein the first display portion further shows a graphicalrepresentation of the plurality of subgroups.
 38. The system, as setforth in claim 32, wherein the first display portion further shows theplurality of subgroups, the first display portion including color codedportions for differentiating the subgroups.
 39. The system, as set forthin claim 38, wherein the graphical user interface further includes asecond display portion showing a list of documents in the responsiveinformation, the second display portion including color coded portionsassociated with the list of documents corresponding to the color codedportions in the first display portion.
 40. The system, as set forth inclaim 32, further comprising program instructions for displayingadditional information based on the at least one group of the responsiveinformation selected by the user.
 41. The system, as set forth in claimn 31, wherein the third program instructions separate the responsiveinformation into a plurality of subgroups based on one or more ranges ofthe selected multidimensional characteristic information.
 42. Thesystem, as set forth in claim 41, wherein the first display portionincludes a stratum showing the subgroups of the responsive information,the fifth program instructions being further operable to: receive userinput comprising selection of at least one subgroup, and displayadditional information based on at least one subgroup selected by theuser, wherein the additional information displayed includes anotherstratum showing a further subgroup of the responsive information. 43.The system, as set forth in claim 42, wherein the graphical userinterface further includes a second display portion showing at least aportion of the responsive information, the fifth program instructionsbeing further operable to update the responsive information in thesecond display portion based on the at least one subgroup selected bythe user.
 44. The system, as set forth in claim 31, further comprising:at least one server computer system including server programinstructions operable to Transmit data between the client computersystem and the data source.
 45. The system, as set forth in claim 44,wherein the data includes the user input.
 46. The system, as set forthin claim 44, wherein the data includes the responsive information. 47.The system, as set forth in claim wherein the server programinstructions include the third program instructions.
 48. A method,comprising: receiving a query from a client device; in response toreceiving the query from the client device, searching one or moredatabases for results of the query; receiving the results of the queryfrom the one or more databases; clustering the results of the query intoa plurality of groups based at least in part on a plurality ofcategories of multidimensional characteristics associated with theresults of the query; clustering the results of the query into aplurality of subgroups based at least in part on a plurality of rangesof the categories of multidimensional characteristics; and transmittingthe clustered results to the client device configured to process theclustered results.
 49. A method as claimed in claim 48, wherein saidclustering comprises grouping together similar records in the results ofthe query.
 50. A method as claimed in claim 48, wherein said clusteringcomprises grouping together records in the results of the query based oncharacteristic information in the query.
 51. A method as claimed inclaim 48, wherein said clustering comprises dividing the results of thequery into mutually exclusive groups such that members of a group are asclosely related as possible to other members of the group, and membersthe group are as unrelated as possible to members of other groups.
 52. Amethod as claimed in claim 48, wherein said clustering comprising one ormore of K-means clustering, self-organizing feature mapping, neural gasclustering, or complexity optimized vector quantization, or combinationsthereof.
 53. A method as claimed in claim 48, wherein the results of thequery comprise one or more of record size, record rank, record date ofpost, record language, record uniform resource locator, or cluster inwhich one or more records are grouped by said clustering, orcombinations thereof.
 54. A method as claimed in claim 48, wherein saidclustering is capable of resulting in one or more groups of recordshaving similar attributes for one or more categories of information. 55.A method as claimed in claim 48, wherein said clustering comprisesdetermining one or more groups into which records of the results of thequery may be grouped based at least in part on one or more heuristics,one or more parameters, or combinations thereof.
 56. A method as claimedin claim 48, wherein said clustering comprises determining one or moregroups into which records of the results of the query may be groupedbased at least in part on a combination of two or more categories ofinformation of the records of the results of the query.
 57. A method asclaimed in claim 48, wherein said clustering comprises determining oneor more groups into which records of the results of the query may begrouped, and further comprising determining one or more sub-groups intowhich results of the query may be grouped based on records in the one ormore sub-groups having similar attributes.
 58. A method as claimed inclaim 48, further comprising formatting the clustered results of thequery via tags capable of allowing the client program to display theclustered results via organization of records in the results of thequery by one or more groups, or by one or more sub-groups, orcombinations thereof.
 59. A method as claimed in claim 48, furthercomprising formatting the clustered results of the query via metadatacapable of allowing the client program to display the clustered resultsvia organization of records in the results of the query by one or moregroups, or by one or more sub-groups, or combinations thereof.
 60. Amethod as claimed in claim 48, further comprising formatting theclustered results of the query via bytecode capable of allowing theclient program to display the clustered results via organization ofrecords in the results of the query by one or more groups, or by one ormore sub-groups, or combinations thereof.
 61. A server systemcomprising: a processor; and a memory coupled to the processor, whereinthe memory comprises program instructions that are executable by theprocessor to: receive a query from a client device; in response toreceiving the query from the client device, search one or more databasesfor results of the query; receive the results of the query from the oneor more databases; cluster the results of the query into a plurality ofgroups based at least in part on a plurality of categories ofmultidimensional characteristics associated with the results of thequery; cluster the results of the query into a plurality of subgroupsbased at least in part on a plurality of ranges of the categories ofmultidimensional characteristics; and transmit the clustered results tothe client device configured to process the clustered results.
 62. Aserver system as claimed in claim 61, wherein the memory furthercomprising program instructions that are executable by the processor tocluster by grouping together similar records in the results of thequery.
 63. A server system as claimed in claim 61, wherein the memoryfurther comprising program instructions that are executable by theprocessor to cluster by grouping together records in the results of thequery based on characteristic information in the query.
 64. A serversystem as claimed in claim 61, wherein the memory further comprisingprogram instructions that are executable by the processor to cluster bydividing the results of the query into mutually exclusive groups suchthat members of a group are as closely related as possible to othermembers of the group, and members the group are as unrelated as possibleto members of other groups.
 65. A server system as claimed in claim 61,wherein the memory further comprising program instructions that areexecutable by the processor to cluster by one or more of K-meansclustering, self-organizing feature mapping, neural gas clustering, orcomplexity optimized vector quantization, or combinations thereof.
 66. Aserver system as claimed in claim 61, wherein the results of the querycomprise one or more of record size, record rank, record date of post,record language, record uniform resource locator, or cluster in whichone or more records are grouped by said clustering, or combinationsthereof.
 67. A server system as claimed in claim 61, wherein the memoryfurther comprising program instructions that are executable by theprocessor to cluster to result in one or more groups of records havingsimilar attributes for one or more categories of information.
 68. Aserver system as claimed in claim 61, wherein the memory furthercomprising program instructions that are executable by the processor tocluster by determining one or more groups into which records of theresults of the query may be grouped based at least in part on one ormore heuristics, one or more parameters, or combinations thereof.
 69. Aserver system as claimed in claim 61, wherein the memory furthercomprising program instructions that are executable by the processor tocluster by determining one or more groups into which records of theresults of the query may be grouped based at least in part on acombination of two or more categories of information of the records ofthe results of the query.
 70. A server system as claimed in claim 61,wherein the memory further comprising program instructions that areexecutable by the processor to cluster by determining one or more groupsinto which records of the results of the query may be grouped, andfurther by determining one or more sub-groups into which results of thequery may be grouped based on records in the one or more sub-groupshaving similar attributes.
 71. A server system as claimed in claim 61,wherein the memory further comprising program instructions that areexecutable by the processor to format the clustered results of the queryvia tags capable of allowing the client program to display the clusteredresults via organization of records in the results of the query by oneor more groups, or by one or more sub-groups, or combinations thereof.72. A server system as claimed in claim 61, wherein the memory furthercomprising program instructions that are executable by the processor toformat the clustered results of the query via metadata capable ofallowing the client program to display the clustered results viaorganization of records in the results of the query by one or moregroups, or by one or more sub-groups, or combinations thereof.
 73. Aserver system as claimed in claim 61, wherein the memory furthercomprising program instructions that are executable by the processor toformat the clustered results of the query via bytecode capable ofallowing the client program to display the clustered results viaorganization of records in the results of the query by one or moregroups, or by one or more sub-groups, or combinations thereof.
 74. Acomputer readable storage medium comprising program instructions,wherein the program instructions are executable to: receive a query froma client device; in response to receiving the query from the clientdevice, search one or more databases for results of the query; receivethe results of the query from the one or more databases; cluster theresults of the query into a plurality of groups based at least in parton a plurality of categories of multidimensional characteristicsassociated with the results of the query; cluster the results of thequery into a plurality of subgroups based at least in part on aplurality of ranges of the categories of multidimensionalcharacteristics; and transmit the clustered results to the client deviceconfigured to process the clustered results.
 75. The computer readablestorage medium as claimed in claim 74, further comprising programinstructions that are executable to cluster by grouping together similarrecords in the results of the query.
 76. The computer readable storagemedium as claimed in claim 74, further comprising program instructionsthat are executable to cluster by grouping together records in theresults of the query based on characteristic information in the query.77. The computer readable storage medium as claimed in claim 74, furthercomprising program instructions that are executable to divide theresults of the query into mutually exclusive groups such that members ofa group are as closely related as possible to other members of thegroup, and members the group are as unrelated as possible to members ofother groups.
 78. The computer readable storage medium as claimed inclaim 74, further comprising program instructions that are executable tocluster by one or more of K-means clustering, self-organizing featuremapping, neural gas clustering, or complexity optimized vectorquantization, or combinations thereof.
 79. The computer readable storagemedium as claimed in claim 74, wherein the results of the query compriseone or more of record size, record rank, record date of post, recordlanguage, record uniform resource locator, or cluster in which one ormore records are grouped by said clustering, or combinations thereof.80. The computer readable storage medium as claimed in claim 74, furthercomprising program instructions that are executable to cause one or moregroups of records having similar attributes for one or more categoriesof information.
 81. The computer readable storage medium as claimed inclaim 74, further comprising program instructions that are executable tocluster by determining one or more groups into which records of theresults of the query may be grouped based at least in part on one ormore heuristics, one or more parameters, or combinations thereof. 82.The computer readable storage medium as claimed in claim 74, furthercomprising program instructions that are executable to cluster bydetermining one or more groups into which records of the results of thequery may be grouped based at least in part on a combination of two ormore categories of information of the records of the results of thequery.
 83. The computer readable storage medium as claimed in claim 74,further comprising program instructions that are executable to clusterby determining one or more groups into which records of the results ofthe query may be grouped, and further by determining one or moresubgroups into which results of the query may be grouped based onrecords in the one or more sub-groups having similar attributes.
 84. Thecomputer readable storage medium as claimed in claim 74, furthercomprising program instructions that are executable to format theclustered results of the query via tags capable of allowing the clientprogram to display the clustered results via organization of records inthe results of the query by one or more groups, or by one or moresub-groups, or combinations thereof.
 85. The computer readable storagemedium as claimed in claim 74, further comprising program instructionsthat are executable to format the clustered results of the query viametadata capable of allowing the client program to display the clusteredresults via organization of records in the results of the query by oneor more groups, or by one or more sub-groups, or combinations thereof.86. The computer readable storage medium as claimed in claim 74, furthercomprising program instructions that are executable to format theclustered results of the query via bytecode capable of allowing theclient program to display the clustered results via organization ofrecords in the results of the query by one or more groups, or by one ormore sub-groups, or combinations thereof.
 87. A method, comprising:receiving queries from one or more client devices; in response toreceiving the queries from the one or more client devices, searching oneor more databases for results of the queries; receiving the results ofthe queries from the one or more databases; clustering the results ofthe queries into groups and subgroups based at least in part onmultidimensional characteristics associated with the results of thequery; transmitting the clustered results to the one or more clientdevices configured to process the clustered results; and providingpersonalized advertisements to the one or more client devices based oninformation associated with the received queries.
 88. A method asclaimed in claim 87, further comprising selecting advertisements thatare personalized to a user of each client device based on topicinformation associated with the received query.
 89. A method as claimedin claim 87, further comprising: receiving advertisement preferenceinformation in addition to the query from each client device; andselecting personalized advertisements to provide to each client devicebased on the received advertisement preference information.
 90. Acomputer system, comprising: a processor; and a memory coupled to theprocessor, wherein the memory comprises program instructions that areexecutable by the processor to: receive queries from one or more clientdevices; in response to receiving the queries from the one or moreclient devices, search one or more databases for results of the queries;receive the results of the queries from the one or more databases;cluster the results of the queries into groups and subgroups based atleast in part on multidimensional characteristics associated with theresults of the query; transmit the clustered results to the one or moreclient devices configured to process the clustered results; and providepersonalized advertisements to the one or more client devices based oninformation associated with the received queries.
 91. A computer systemas claimed in claim 90, wherein the memory further comprising programinstructions that are executable by the processor to selectadvertisements that are personalized to a user of each client devicebased on topic information associated with the received query.
 92. Acomputer system as claimed in claim 90, wherein the memory furthercomprising program instructions that are executable by the processor to:receive advertisement preference information in addition to the queryfrom each client device; and select personalized advertisements toprovide to each client device based on the received advertisementpreference information.
 93. A computer readable storage mediumcomprising program instructions, wherein the program instructions areexecutable to: receive queries from one or more client devices; inresponse to receiving the queries from the one or more client devices,search one or more databases for results of the queries; receive theresults of the queries from the one or more databases; cluster theresults of the queries into groups and subgroups based at least in parton multidimensional characteristics associated with the results of thequery; transmit the clustered results to the one or more client devicesconfigured to process the clustered results; and provide personalizedadvertisements to the one or more client devices based on informationassociated with the received queries.
 94. The computer readable storagemedium as claimed in claim 93, further comprising program instructionsthat are executable to select advertisements that are personalized to auser of each client device based on topic information associated withthe received query.
 95. The computer readable storage medium as claimedin claim 93, further comprising program instructions that are executableto: receive advertisement preference information in addition to thequery from each client device; and select personalized advertisements toprovide to each client device based on the received advertisementpreference information.
 96. A system, comprising: means for receiving aquery from a client device; means for searching one or more databasesfor results of the query, in response to receiving the query from theclient device; means for receiving the results of the query from the oneor more databases; means for clustering the results of the query into aplurality of groups based at least in part on a plurality of categoriesof multidimensional characteristics associated with the results of thequery; means for clustering the results of the query into a plurality ofsubgroups based at least in part on a plurality of ranges of thecategories of multidimensional characteristics; and means fortransmitting the clustered results to the client device configured toprocess the clustered results.
 97. A method, comprising: providing aquery for searching one or more database for results of the query;receiving clustered results in response to said providing the query,wherein the clustered results are clustered into a plurality of groupsbased at least in part on a plurality of categories of multidimensionalcharacteristics associated with the results of the query, and whereinthe clustered results are further clustered into a plurality ofsubgroups based at least in part on a plurality of ranges of thecategories of multidimensional characteristics; and processing theclustered results.